Software tests are used to validate software, hardware, or a combination of software and hardware. To run the tests, a quality engineer (QE) manually configures and runs the test, which can be a laborious for involved tests. Alternatively, the tests can be automatically executed using test execution code, which configures test devices and runs the tests. Although having test execution code may be more effective than manually running the test, this requires a QE to write and maintain the test execution code. Test instructions are typically written as imperative instructions, meaning the QE has to specify in the test instructions how the test are run. More specifically, the QE has to specify the control flow of the tests. This can be a difficult task, especially when there are a large number of tests that need to be run.